package cc.shacocloud.luanniao.core.model.po

import cc.shacocloud.luanniao.core.model.constant.KnowledgeBaseTypeEnum
import org.springframework.data.relational.core.mapping.Column
import org.springframework.data.relational.core.mapping.Table

/**
 * 知识库
 *
 * @author 思追(shaco)
 */
@Table("def_knowledge_base")
data class KnowledgeBasePo(

    /**
     * 命名空间 id
     */
    @Column("namespace_id")
    val namespaceId: Long,

    /**
     * 名称
     */
    @Column("name")
    var name: String,

    /**
     * 知识库类型
     */
    @Column("type")
    val type: KnowledgeBaseTypeEnum,

    /**
     * 头像链接地址
     */
    @Column("avatar")
    var avatar: String? = null,

    /**
     * 知识库描述
     */
    @Column("description")
    var description: String? = null,

    /**
     * 父目录id
     */
    @Column("parent_id")
    var parentId: Long? = null,

    /**
     * 创建者id
     */
    @Column("creator_id")
    val creatorId: Long,

    /**
     * 关联 ai 模型id，在类型不等于 [KnowledgeBaseTypeEnum.DIRECTORY] 时不可以为空
     */
    @Column("ai_model_id")
    val aiModelId: Long,
) : BasePo()
